
function times(node) {
	insertElement(215,"math");
}

function nabla(node) {
	insertElement(8711,"math");
}

function partial(node) {
	insertElement(8706,"math");
}

function sqrt(node) {
	;
}

function overbar(node) {
	;
}

function underbar(node) {
	;
}

function underline(node) {

		var parent=null;
				
	// inserting the underline node;
		
		caret=superOperatorInsert(caret,"underline");
	
	// Add Up and Line Nodes
		parent=caret;

		caret=subOperatorAppend(caret,"up");
			
		// Add Content Node
		
		caret=contentNodeAppend(caret,1);
		
		auxOperatorInsert(parent,"line");
	
}

function overline(node) {

		var parent=null;
	// inserting the underline node;
		
		caret=superOperatorInsert(caret,"overline");
	
	// Add Up and Line Nodes
		parent=caret;

		caret=subOperatorAppend(caret,"down");
			
		// Add Content Node
		
		caret=contentNodeAppend(caret,1);
		
		auxOperatorInsert(parent,"line");
	
}

// reporting its size and positioning in the right way.
function frac(node) {

		var upCaret,downCaret,middleCaret;
		
		caret=superOperatorInsert(caret,"fraction");
	
		upCaret=subOperatorAppend(caret,"up");

		downCaret=subOperatorAppend(caret,"down");
		
		middleCaret=auxOperatorInsert(caret,"middle");
		
		
		caret=contentNodeAppend(downCaret,0);
		
		caret=contentNodeAppend(upCaret,0);
		
	
}

function mathfrak(node) {
	// inserting the mathfrak node;
		caret=superOperatorInsert(caret,"mathfrak");
		caret.node.attr('font','mathfrak');
	// Add Up Nodes:
		caret=subOperatorAppend(caret,"up");
					
	// Add Content Node
		caret=contentNodeAppend(caret,1);
	
}

function offSetForOverline(node) {
	var operatorNode;
	var selfWidth; // for left alignment in fraction
	
	var ascentTop=0;
	var descentTop=0;
	var ascentBottom=0;
	var descentBottom=0;
	
	var widthThis=0;
	
	var length;
	
	node.asent=0;
	node.descent=0;
	
	operatorNode=node.children;
//	selfHeight=node.height;
	selfWidth=node.width;
	
	length=operatorNode.length;
	
	
	if(length<=0) 
	{
		return 0;
	}
	
	else {  
			for(var i=0;i<length;i++) {
				element=operatorNode[i];
				if(element.operator=="down"){
					widthThis=element.width;
					ascentBottom=ascentChildren(element);
					descentBottom=descentChildren(element);
					node.ascent=ascentBottom+2;
					node.descent=descentBottom;
				}
				else if(element.operator=="line"){
					element.node.css('bottom',10+ascentBottom);
					element.node.css('left',0);
					element.width=widthThis;
					element.node.css('width',widthThis);
				}
			}
	}
}

function offSetForUnderline(node) {
	var operatorNode;
	var selfWidth; // for left alignment in fraction
	
	var ascentTop=0;
	var descentTop=0;
	var ascentBottom=0;
	var descentBottom=0;
	
	var widthThis=0;
	
	var length;
	
	node.asent=0;
	node.descent=0;
	
	operatorNode=node.children;
//	selfHeight=node.height;
	selfWidth=node.width;
	
	length=operatorNode.length;
	
	
	if(length<=0) 
	{
		return 0;
	}
	
	else {  
			for(var i=0;i<length;i++) {
				element=operatorNode[i];
				if(element.operator=="up"){
					widthThis=element.width;
					ascentTop=ascentChildren(element);
					descentTop=descentChildren(element);
					node.ascent=ascentTop;
					node.descent=descentTop+2;
				}
				else if(element.operator=="line"){
					element.node.css('bottom',4-descentTop);
					element.node.css('left',0);
					element.width=widthThis;
					element.node.css('width',widthThis);
				}
			}
	}
}

function offSetForFraction(node) {
	var operatorNode;
	var upOffset=0;
	var downOffset=0;
	var selfHeight;
	var selfWidth; // for left alignment in fraction
	var height;
	
	var upOffsetTop=0;
	var downOffsetTop=0;
	var upOffsetBottom=0;
	var downOffsetBottom=0;
	
	var heightTop=0;
	var heightBottom=0;
	
	var widthThis=0;
	
	var length;
	
	node.upOffSet=0;
	node.downOffSet=0;
	
	operatorNode=node.children;
	selfHeight=node.height;
	selfWidth=node.width+selfHeight*0.4;
	node.width=selfWidth;

	length=operatorNode.length;
	
	if(length<=0) {

		return 0;
	}
	
	else {  // the only additional thing you need to do here is to align the left as well. 
	// Up and Down are designed to 
		for(var i=0;i<length;i++){
				element=operatorNode[i];
				if(element.operator=="up"){
					widthThis=element.width;
					heightTop=element.height;
					upOffsetTop=upOffSetChildren(element);
					downOffsetTop=downOffSetChildren(element);
					element.node.css('bottom',selfHeight*(1/2)+downOffsetTop);
					element.node.css('left',(selfWidth-widthThis)/2);
					node.upOffSet=heightTop+upOffsetTop+downOffsetTop-selfHeight/2;
				}
				else if(element.operator=="down"){
					widthThis=element.width;
					heightBottom=element.height;
					upOffsetBottom=upOffSetChildren(element);
					downOffsetBottom=downOffSetChildren(element);
					element.node.css('left',(selfWidth-widthThis)/2);
					element.node.css('bottom',selfHeight/2-heightBottom-upOffsetBottom);
					node.downOffSet=heightBottom+upOffsetBottom+downOffsetBottom-selfHeight/2;
				}
				else if(element.operator=="middle"){
					element.node.css('bottom',selfHeight/2);
					element.node.css('left',0);
					element.node.css('width',selfWidth);
				}
			
		}

	}
}